Lua 的脚本名任意,但需要在 sph.toml 中声明。
[pre-process]
dofile = true
lua_script = "xxx.lua"
presph 采用 Lua 方法布置初始粒子信息,函数名规定为 region,意为“域”。
function region()
-- ...
return x, xv, mass, rho, p, u, itype, dx, ntotal, nvirt
end
函数没有输入值,只有 10 个输出值。分别是:
x: 粒子位置,类型为 table,x[][],第一个索引为维度,第二个索引为粒子序号。xv:粒子速度,类型为 table,xv[][],第一个索引为维度,第二个索引为粒子序号。mass:粒子质量,类型为 table,mass[],第一个索引为粒子序号。rho:粒子密度,类型为 table,rho[],第一个索引为粒子序号。p:粒子压强,类型为 table,p[],第一个索引为粒子序号。u:粒子内能,类型为 table,u[],第一个索引为粒子序号。itype:粒子类型,类型为 table,itype[],第一个索引为粒子序号。dx:光滑长度,类型为 number。ntotal:粒子总数,类型为 number。nvirt:虚拟粒子数,类型为 number。